Cloud computing is the use of computing resources (hardware and software) that are available in a remote location and accessible over a network, such as the Internet. In a computing environment with many computing devices, such as a virtual server or cloud computing environment with many server computers, the use of computing resources can provide a number of advantages including cost advantages and/or the ability to adapt rapidly to changing computing resource needs. Therefore, programs (e.g., operating system and management programs) on the server computers in the cloud computing environment need to run optimally, without any vulnerabilities or “bugs.”
One way to keep programs running optimally is to use patches. A patch (or patch software) is a piece of software which may be used to update a program running on a computing device to fix any known security vulnerabilities, performance deficiencies or other known program bugs, or to further improve usability and performance of the program. One way to deploy patch software is to change the targeted program code as stored on the device hard drive. However, this type of patching may be inefficient, especially in a cloud computing environment with multiple computing devices, since deployment of the patched software requires restart of the computing device after the program code patching is complete, causing interruption of all programs executing on the computing devices.
Another way to deploy patching is to use hot patching, which is the application of a patch to a program without restarting the computing device. However, hot patching may be hard to apply in instances when the target program is a management program that provides limited (or no) access to the program code.